from ucimlrepo import fetch_ucirepo
import pandas as pd

# 获取数据集
phishing_websites = fetch_ucirepo(id=327)

# 数据特征与标签
X = phishing_websites.data.features
y = phishing_websites.data.targets


# 数据集概览打印函数
def print_dataset_summary(X, y):
    # 样本规模
    total_samples = X.shape[0]
    phishing_count = sum(y.iloc[:, 0] == 1)  # 假设标签列名为'Class'
    legitimate_count = total_samples - phishing_count
    ratio = legitimate_count / phishing_count

    # 特征构成
    num_features = X.shape[1]

    # 数据格式分析
    continuous_examples = [col for col in X.columns if X[col].nunique() > 5][:2]
    binary_examples = [col for col in X.columns if X[col].nunique() == 2][:2]

    # 打印输出
    print("（一）数据集概览")
    print(
        f"• 样本规模：{total_samples} 条（钓鱼网站 {phishing_count} 条，合法网站 {legitimate_count} 条，比例 1:{ratio:.2f}）")
    print(f"• 特征构成：{num_features} 个数值型/分类型特征 + 1 个二元标签")
    print(f"• 数据格式：CSV 格式，包含：")
    print(f"   - 连续型特征：{', '.join(continuous_examples)} 等")
    print(f"   - 二值化特征：{', '.join(binary_examples)} 等")


# 执行打印
print_dataset_summary(X, y)

# 可选：显示前3行数据示例
print("\n数据示例：")
pd.concat([X.head(3), y.head(3)], axis=1)